package com.test.languagetest;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import com.pojo.Product;

/**
 * @description 测试hibernate事务
 * @author Leon Plious
 * @date 2020年7月2日
 */
public class HibernateTestTrasaction {

	/*
	 * 注解：
	 * 前提是MySQL服务器支持innodb
	 * MySQL必须是innodb才支持事务
	 * 修改表类型为INNODB的SQL
	 * alter table product_ ENGINE  = innodb;
	 * 查看表的SQL类型
	 * show table status from 表名
	 */
	public static void main(String[] args) {
		SessionFactory sf = new Configuration().configure().buildSessionFactory();
		Session session = sf.openSession();
		session.beginTransaction();
		
		Product p = (Product) session.get(Product.class, 1);
		session.delete(p);
		
		Product p2 = (Product)session.get(Product.class, 2);
		p2.setName("长度超过30的字符串作为产品名称长度超过30的字符串作为产品名称长度超过30的字符串作为产品名称长度超过30的字符串作为产品名称");
		session.update(p2);
		
		session.getTransaction().commit();
		session.close();
		sf.close();
	}
}
